package it.vecchiContratti;

import it.gestoreContratti.database.DatabaseController;
import it.gestoreContratti.database.exception.DatabaseConnectionException;
import it.gestoreContratti.database.exception.DatabaseNotFoundException;
import it.gestoreContratti.database.exception.DriverNotFoundException;
import it.gestoreContratti.database.exception.QueryException;
import it.gestoreContratti.entity.Periodo;

import java.io.File;
import java.math.BigDecimal;
import java.math.MathContext;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;

import javax.swing.JOptionPane;

public class ConversioneVecchiContratti {

//	/**
//	 * @param args
//	 * @throws DatabaseNotFoundException 
//	 * @throws DriverNotFoundException 
//	 * @throws ParseException	
//	 */
//	public static void main(String[] args) throws DatabaseNotFoundException, DriverNotFoundException, ParseException{
//		ArrayList<Contratto> vecchiContratti = new ArrayList<Contratto>();
//		ArrayList<it.gestoreContratti.entity.Contratto> nuoviContratti = new ArrayList<it.gestoreContratti.entity.Contratto>();
//		String dbPath = "database"+File.separator+"contratti_db.sqlite";
//		String vecchiContrattiPath = "vecchiContratti"+File.separator+"contratti.txt";
//		DatabaseController databaseController = new DatabaseController(dbPath);
//		DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
//		databaseController.verifyDbExist();
//		databaseController.loadDriverClass();
//		GestoreContratti gestore = new GestoreContratti(vecchiContrattiPath);
//		gestore.caricaElencoContratti();
//		vecchiContratti = gestore.getTuttiContratti();		
//		for(int i=0;i<vecchiContratti.size();i++){
//			Contratto vecchio = vecchiContratti.get(i);			
//			it.gestoreContratti.entity.Contratto nuovo = new it.gestoreContratti.entity.Contratto();
//			nuovo.setNumero(new BigDecimal(vecchio.getNumero()));
//			nuovo.setDitta(vecchio.getAzienda());
//			nuovo.setDataInizio(dateFormat.parse(vecchio.getDataInizioInStringa()));
//			nuovo.setPeriodo(Periodo.MM);
//			nuovo.setDurata(new BigDecimal(vecchio.getDurata()));
//			Calendar cal = new GregorianCalendar();
//			cal.setTime(nuovo.getDataInizio());
//			cal.add(Calendar.MONTH, nuovo.getDurata().intValue());
//			nuovo.setDataScadenza(cal.getTime());
//			String importoStr = new String(vecchio.getImporto());			
//			importoStr = importoStr.replaceAll("\\.","");
//			importoStr = importoStr.replaceAll(",","\\.");
//			nuovo.setImporto(new BigDecimal(importoStr));
//			nuovo.setRimanenza(new BigDecimal(importoStr));
//			nuovo.setCommento("");			
//			try {
//				databaseController.insertContratto(nuovo);
//				JOptionPane.showMessageDialog(null, "inserito il "+i+"-esimo contratto con numero "+nuovo.getNumero().toString(), "" , JOptionPane.INFORMATION_MESSAGE);
//			} catch (DatabaseConnectionException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			} catch (QueryException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//			//nuoviContratti.add(nuovo);
//		}
//		System.out.println("# VECCHI CONTRATTI = "+vecchiContratti.size());
//		System.out.println("# NUOVI CONTRATTI = "+nuoviContratti.size());
//		
//		for(int i=0;i<vecchiContratti.size();i++){
//			for(int j=0;j<nuoviContratti.size();j++){
//				if(i !=j){					
//					BigDecimal numeroVecchio = new BigDecimal(vecchiContratti.get(i).getNumero());
//					if(numeroVecchio.compareTo(nuoviContratti.get(j).getNumero()) == 0){
//						System.out.println("ATTENZIONE 2 contratti con lo stesso numero : "+vecchiContratti.get(i).getNumero());
//					}
//					
//				}				
//			}			
//		}
//	}

}
